package agentes;

  class Jeops_RuleBase_PrincipioFundamentalContagemRegras extends jeops.AbstractRuleBase {
	
    /**
     * Identifiers of rule verificaPreenchimento
     */
    private String[] identifiers_verificaPreenchimento = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule verificaPreenchimento
     *
     * @return the identifiers declared in rule verificaPreenchimento
     */
    private String[] getDeclaredIdentifiers_verificaPreenchimento() {
         return identifiers_verificaPreenchimento;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule verificaPreenchimento.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_verificaPreenchimento(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule verificaPreenchimento.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_verificaPreenchimento(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule verificaPreenchimento.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_verificaPreenchimento(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule verificaPreenchimento.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_verificaPreenchimento(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule verificaPreenchimento
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_verificaPreenchimento() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule verificaPreenchimento
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_verificaPreenchimento(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule verificaPreenchimento.<p>
     * The original expression was:<br>
     * <code>(mult.getOpcao(0).getText().isEmpty() || mult.getOpcao(1).getText().isEmpty())</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean verificaPreenchimento_cond_0() {
        return ((agentes_PrincipioFundamentalContagem_1.getOpcao(0).getText().isEmpty() || agentes_PrincipioFundamentalContagem_1.getOpcao(1).getText().isEmpty()));
    }

    /**
     * Checks whether some conditions of rule verificaPreenchimento is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean verificaPreenchimento_cond(int index) {
        switch (index) {
            case 0: return verificaPreenchimento_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule verificaPreenchimento that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_verificaPreenchimento(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!verificaPreenchimento_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_verificaPreenchimento(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule verificaPreenchimento
     */
    private void verificaPreenchimento() {
	    	agentes_PrincipioFundamentalContagem_1.setAtencaoOpcao(0);
	    	agentes_PrincipioFundamentalContagem_1.setAtencaoOpcao(1);
	    	agentes_PrincipioFundamentalContagem_1.mostrarAlerta(6);
	    }


	
	
    /**
     * Identifiers of rule verificaPreenchimento2
     */
    private String[] identifiers_verificaPreenchimento2 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule verificaPreenchimento2
     *
     * @return the identifiers declared in rule verificaPreenchimento2
     */
    private String[] getDeclaredIdentifiers_verificaPreenchimento2() {
         return identifiers_verificaPreenchimento2;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule verificaPreenchimento2.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_verificaPreenchimento2(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule verificaPreenchimento2.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_verificaPreenchimento2(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule verificaPreenchimento2.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_verificaPreenchimento2(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule verificaPreenchimento2.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_verificaPreenchimento2(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule verificaPreenchimento2
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_verificaPreenchimento2() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule verificaPreenchimento2
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_verificaPreenchimento2(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule verificaPreenchimento2.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(1).isVisible() == true && (mult.getOpcao(2).getText().isEmpty() || mult.getOpcao(3).getText().isEmpty())</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean verificaPreenchimento2_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(1).isVisible() == true && (agentes_PrincipioFundamentalContagem_1.getOpcao(2).getText().isEmpty() || agentes_PrincipioFundamentalContagem_1.getOpcao(3).getText().isEmpty()));
    }

    /**
     * Checks whether some conditions of rule verificaPreenchimento2 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean verificaPreenchimento2_cond(int index) {
        switch (index) {
            case 0: return verificaPreenchimento2_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule verificaPreenchimento2 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_verificaPreenchimento2(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!verificaPreenchimento2_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_verificaPreenchimento2(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule verificaPreenchimento2
     */
    private void verificaPreenchimento2() {
	    	agentes_PrincipioFundamentalContagem_1.setAtencaoOpcao(2);
	    	agentes_PrincipioFundamentalContagem_1.setAtencaoOpcao(3);
	    	agentes_PrincipioFundamentalContagem_1.mostrarAlerta(6);
	    }


	
	
    /**
     * Identifiers of rule verificaPreenchimento3
     */
    private String[] identifiers_verificaPreenchimento3 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule verificaPreenchimento3
     *
     * @return the identifiers declared in rule verificaPreenchimento3
     */
    private String[] getDeclaredIdentifiers_verificaPreenchimento3() {
         return identifiers_verificaPreenchimento3;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule verificaPreenchimento3.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_verificaPreenchimento3(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule verificaPreenchimento3.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_verificaPreenchimento3(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule verificaPreenchimento3.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_verificaPreenchimento3(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule verificaPreenchimento3.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_verificaPreenchimento3(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule verificaPreenchimento3
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_verificaPreenchimento3() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule verificaPreenchimento3
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_verificaPreenchimento3(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule verificaPreenchimento3.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(2).isVisible() == true && mult.getResposta().getText().isEmpty()</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean verificaPreenchimento3_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(2).isVisible() == true && agentes_PrincipioFundamentalContagem_1.getResposta().getText().isEmpty());
    }

    /**
     * Checks whether some conditions of rule verificaPreenchimento3 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean verificaPreenchimento3_cond(int index) {
        switch (index) {
            case 0: return verificaPreenchimento3_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule verificaPreenchimento3 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_verificaPreenchimento3(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!verificaPreenchimento3_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_verificaPreenchimento3(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule verificaPreenchimento3
     */
    private void verificaPreenchimento3() {
	    	agentes_PrincipioFundamentalContagem_1.mostrarAlerta(10);
	    }


	
	
    /**
     * Identifiers of rule habilitaCampos
     */
    private String[] identifiers_habilitaCampos = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule habilitaCampos
     *
     * @return the identifiers declared in rule habilitaCampos
     */
    private String[] getDeclaredIdentifiers_habilitaCampos() {
         return identifiers_habilitaCampos;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule habilitaCampos.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_habilitaCampos(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule habilitaCampos.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_habilitaCampos(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule habilitaCampos.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_habilitaCampos(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule habilitaCampos.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_habilitaCampos(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule habilitaCampos
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_habilitaCampos() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule habilitaCampos
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_habilitaCampos(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule habilitaCampos.<p>
     * The original expression was:<br>
     * <code>(mult.getPanel(1).isVisible() == false && mult.getValueOpcao(0) == 4 && mult.getValueOpcao(1) == 4)</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean habilitaCampos_cond_0() {
        return ((agentes_PrincipioFundamentalContagem_1.getPanel(1).isVisible() == false && agentes_PrincipioFundamentalContagem_1.getValueOpcao(0) == 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(1) == 4));
    }

    /**
     * Checks whether some conditions of rule habilitaCampos is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean habilitaCampos_cond(int index) {
        switch (index) {
            case 0: return habilitaCampos_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule habilitaCampos that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_habilitaCampos(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!habilitaCampos_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_habilitaCampos(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule habilitaCampos
     */
    private void habilitaCampos() {
    		agentes_PrincipioFundamentalContagem_1.setOkOpcao(0);
	    	agentes_PrincipioFundamentalContagem_1.setOkOpcao(1);
	    	agentes_PrincipioFundamentalContagem_1.getOpcao(0).setEditable(false);
	    	agentes_PrincipioFundamentalContagem_1.getOpcao(1).setEditable(false);
	    	agentes_PrincipioFundamentalContagem_1.getPanel(1).setVisible(true);
	    	agentes_PrincipioFundamentalContagem_1.moveBtnValida();
	    }


	
	
	
    /**
     * Identifiers of rule habilitaCampos1
     */
    private String[] identifiers_habilitaCampos1 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule habilitaCampos1
     *
     * @return the identifiers declared in rule habilitaCampos1
     */
    private String[] getDeclaredIdentifiers_habilitaCampos1() {
         return identifiers_habilitaCampos1;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule habilitaCampos1.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_habilitaCampos1(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule habilitaCampos1.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_habilitaCampos1(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule habilitaCampos1.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_habilitaCampos1(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule habilitaCampos1.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_habilitaCampos1(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule habilitaCampos1
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_habilitaCampos1() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule habilitaCampos1
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_habilitaCampos1(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule habilitaCampos1.<p>
     * The original expression was:<br>
     * <code>(mult.getPanel(2).isVisible() == false && mult.getValueOpcao(2) == 4 && mult.getValueOpcao(3) == 3)</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean habilitaCampos1_cond_0() {
        return ((agentes_PrincipioFundamentalContagem_1.getPanel(2).isVisible() == false && agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) == 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) == 3));
    }

    /**
     * Checks whether some conditions of rule habilitaCampos1 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean habilitaCampos1_cond(int index) {
        switch (index) {
            case 0: return habilitaCampos1_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule habilitaCampos1 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_habilitaCampos1(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!habilitaCampos1_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_habilitaCampos1(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule habilitaCampos1
     */
    private void habilitaCampos1() {
    		agentes_PrincipioFundamentalContagem_1.setOkOpcao(2);
	    	agentes_PrincipioFundamentalContagem_1.setOkOpcao(3);
	    	agentes_PrincipioFundamentalContagem_1.getOpcao(2).setEditable(false);
	    	agentes_PrincipioFundamentalContagem_1.getOpcao(3).setEditable(false);
    		agentes_PrincipioFundamentalContagem_1.getPanel(2).setVisible(true);
    		agentes_PrincipioFundamentalContagem_1.moveBtnValida();
	    }



	
    /**
     * Identifiers of rule respostaValida
     */
    private String[] identifiers_respostaValida = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule respostaValida
     *
     * @return the identifiers declared in rule respostaValida
     */
    private String[] getDeclaredIdentifiers_respostaValida() {
         return identifiers_respostaValida;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule respostaValida.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_respostaValida(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule respostaValida.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_respostaValida(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule respostaValida.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_respostaValida(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule respostaValida.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_respostaValida(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule respostaValida
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_respostaValida() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule respostaValida
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_respostaValida(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule respostaValida.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(2).isVisible() == true && mult.getValueResposta() == 12</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean respostaValida_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(2).isVisible() == true && agentes_PrincipioFundamentalContagem_1.getValueResposta() == 12);
    }

    /**
     * Checks whether some conditions of rule respostaValida is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean respostaValida_cond(int index) {
        switch (index) {
            case 0: return respostaValida_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule respostaValida that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_respostaValida(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!respostaValida_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_respostaValida(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule respostaValida
     */
    private void respostaValida() {
    		agentes_PrincipioFundamentalContagem_1.setOkResposta();
			agentes_PrincipioFundamentalContagem_1.getResposta().setEditable(false);
    		agentes_PrincipioFundamentalContagem_1.mostrarAlerta(7);
    		agentes_PrincipioFundamentalContagem_1.removeBtnValida();
	    }




	
    /**
     * Identifiers of rule respostaInvalida1
     */
    private String[] identifiers_respostaInvalida1 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule respostaInvalida1
     *
     * @return the identifiers declared in rule respostaInvalida1
     */
    private String[] getDeclaredIdentifiers_respostaInvalida1() {
         return identifiers_respostaInvalida1;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule respostaInvalida1.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_respostaInvalida1(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule respostaInvalida1.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_respostaInvalida1(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule respostaInvalida1.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_respostaInvalida1(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule respostaInvalida1.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_respostaInvalida1(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule respostaInvalida1
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_respostaInvalida1() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule respostaInvalida1
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_respostaInvalida1(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule respostaInvalida1.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(2).isVisible() == true && mult.getValueResposta() != 12</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean respostaInvalida1_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(2).isVisible() == true && agentes_PrincipioFundamentalContagem_1.getValueResposta() != 12);
    }

    /**
     * Checks whether some conditions of rule respostaInvalida1 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean respostaInvalida1_cond(int index) {
        switch (index) {
            case 0: return respostaInvalida1_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule respostaInvalida1 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_respostaInvalida1(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!respostaInvalida1_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_respostaInvalida1(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule respostaInvalida1
     */
    private void respostaInvalida1() {
	    	agentes_PrincipioFundamentalContagem_1.setErrorResposta();
			agentes_PrincipioFundamentalContagem_1.mostrarAlerta(1);
	    }




	
    /**
     * Identifiers of rule opcoesValidas1
     */
    private String[] identifiers_opcoesValidas1 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesValidas1
     *
     * @return the identifiers declared in rule opcoesValidas1
     */
    private String[] getDeclaredIdentifiers_opcoesValidas1() {
         return identifiers_opcoesValidas1;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesValidas1.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesValidas1(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesValidas1.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesValidas1(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesValidas1.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesValidas1(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesValidas1.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesValidas1(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesValidas1
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesValidas1() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesValidas1
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesValidas1(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesValidas1.<p>
     * The original expression was:<br>
     * <code>mult.getValueOpcao(0) == 4</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesValidas1_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getValueOpcao(0) == 4);
    }

    /**
     * Checks whether some conditions of rule opcoesValidas1 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesValidas1_cond(int index) {
        switch (index) {
            case 0: return opcoesValidas1_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesValidas1 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesValidas1(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesValidas1_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesValidas1(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesValidas1
     */
    private void opcoesValidas1() {
			agentes_PrincipioFundamentalContagem_1.setOkOpcao(0);
			agentes_PrincipioFundamentalContagem_1.getOpcao(0).setEditable(false);
	    }



	
    /**
     * Identifiers of rule opcoesValidas1_1
     */
    private String[] identifiers_opcoesValidas1_1 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesValidas1_1
     *
     * @return the identifiers declared in rule opcoesValidas1_1
     */
    private String[] getDeclaredIdentifiers_opcoesValidas1_1() {
         return identifiers_opcoesValidas1_1;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesValidas1_1.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesValidas1_1(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesValidas1_1.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesValidas1_1(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesValidas1_1.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesValidas1_1(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesValidas1_1.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesValidas1_1(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesValidas1_1
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesValidas1_1() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesValidas1_1
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesValidas1_1(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesValidas1_1.<p>
     * The original expression was:<br>
     * <code>mult.getValueOpcao(1) == 4</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesValidas1_1_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getValueOpcao(1) == 4);
    }

    /**
     * Checks whether some conditions of rule opcoesValidas1_1 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesValidas1_1_cond(int index) {
        switch (index) {
            case 0: return opcoesValidas1_1_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesValidas1_1 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesValidas1_1(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesValidas1_1_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesValidas1_1(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesValidas1_1
     */
    private void opcoesValidas1_1() {
			agentes_PrincipioFundamentalContagem_1.setOkOpcao(1);
			agentes_PrincipioFundamentalContagem_1.getOpcao(1).setEditable(false);
	    }


	
	
    /**
     * Identifiers of rule opcoesValidas2
     */
    private String[] identifiers_opcoesValidas2 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesValidas2
     *
     * @return the identifiers declared in rule opcoesValidas2
     */
    private String[] getDeclaredIdentifiers_opcoesValidas2() {
         return identifiers_opcoesValidas2;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesValidas2.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesValidas2(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesValidas2.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesValidas2(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesValidas2.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesValidas2(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesValidas2.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesValidas2(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesValidas2
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesValidas2() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesValidas2
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesValidas2(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesValidas2.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(1).isVisible() == true && mult.getValueOpcao(2) == 4 && mult.getValueOpcao(3) != 4</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesValidas2_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(1).isVisible() == true && agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) == 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) != 4);
    }

    /**
     * Checks whether some conditions of rule opcoesValidas2 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesValidas2_cond(int index) {
        switch (index) {
            case 0: return opcoesValidas2_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesValidas2 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesValidas2(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesValidas2_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesValidas2(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesValidas2
     */
    private void opcoesValidas2() {
			agentes_PrincipioFundamentalContagem_1.setOkOpcao(2);
			agentes_PrincipioFundamentalContagem_1.getOpcao(2).setEditable(false);
	    }


	
	
    /**
     * Identifiers of rule opcoesValidas3
     */
    private String[] identifiers_opcoesValidas3 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesValidas3
     *
     * @return the identifiers declared in rule opcoesValidas3
     */
    private String[] getDeclaredIdentifiers_opcoesValidas3() {
         return identifiers_opcoesValidas3;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesValidas3.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesValidas3(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesValidas3.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesValidas3(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesValidas3.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesValidas3(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesValidas3.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesValidas3(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesValidas3
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesValidas3() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesValidas3
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesValidas3(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesValidas3.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(1).isVisible() == true && mult.getValueOpcao(2) == 3 && mult.getValueOpcao(3) != 3</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesValidas3_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(1).isVisible() == true && agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) == 3 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) != 3);
    }

    /**
     * Checks whether some conditions of rule opcoesValidas3 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesValidas3_cond(int index) {
        switch (index) {
            case 0: return opcoesValidas3_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesValidas3 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesValidas3(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesValidas3_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesValidas3(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesValidas3
     */
    private void opcoesValidas3() {
			agentes_PrincipioFundamentalContagem_1.setOkOpcao(2);
			agentes_PrincipioFundamentalContagem_1.getOpcao(2).setEditable(false);
	    }



	
    /**
     * Identifiers of rule opcoesValidas4
     */
    private String[] identifiers_opcoesValidas4 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesValidas4
     *
     * @return the identifiers declared in rule opcoesValidas4
     */
    private String[] getDeclaredIdentifiers_opcoesValidas4() {
         return identifiers_opcoesValidas4;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesValidas4.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesValidas4(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesValidas4.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesValidas4(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesValidas4.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesValidas4(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesValidas4.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesValidas4(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesValidas4
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesValidas4() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesValidas4
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesValidas4(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesValidas4.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(1).isVisible() == true && mult.getValueOpcao(3) == 4 && mult.getValueOpcao(2) != 4</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesValidas4_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(1).isVisible() == true && agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) == 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) != 4);
    }

    /**
     * Checks whether some conditions of rule opcoesValidas4 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesValidas4_cond(int index) {
        switch (index) {
            case 0: return opcoesValidas4_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesValidas4 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesValidas4(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesValidas4_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesValidas4(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesValidas4
     */
    private void opcoesValidas4() {
			agentes_PrincipioFundamentalContagem_1.setOkOpcao(3);
			agentes_PrincipioFundamentalContagem_1.getOpcao(3).setEditable(false);
	    }


	
	
    /**
     * Identifiers of rule opcoesValidas5
     */
    private String[] identifiers_opcoesValidas5 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesValidas5
     *
     * @return the identifiers declared in rule opcoesValidas5
     */
    private String[] getDeclaredIdentifiers_opcoesValidas5() {
         return identifiers_opcoesValidas5;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesValidas5.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesValidas5(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesValidas5.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesValidas5(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesValidas5.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesValidas5(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesValidas5.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesValidas5(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesValidas5
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesValidas5() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesValidas5
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesValidas5(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesValidas5.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(1).isVisible() == true && mult.getValueOpcao(3) == 3 && mult.getValueOpcao(2) != 3</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesValidas5_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(1).isVisible() == true && agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) == 3 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) != 3);
    }

    /**
     * Checks whether some conditions of rule opcoesValidas5 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesValidas5_cond(int index) {
        switch (index) {
            case 0: return opcoesValidas5_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesValidas5 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesValidas5(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesValidas5_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesValidas5(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesValidas5
     */
    private void opcoesValidas5() {
			agentes_PrincipioFundamentalContagem_1.setOkOpcao(3);
			agentes_PrincipioFundamentalContagem_1.getOpcao(3).setEditable(false);
	    }


	
		
	
    /**
     * Identifiers of rule opcoesInvalidas1
     */
    private String[] identifiers_opcoesInvalidas1 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas1
     *
     * @return the identifiers declared in rule opcoesInvalidas1
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas1() {
         return identifiers_opcoesInvalidas1;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas1.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas1(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas1.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas1(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas1.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas1(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas1.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas1(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas1
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas1() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas1
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas1(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas1.<p>
     * The original expression was:<br>
     * <code>mult.getValueOpcao(0) == 2 || mult.getValueOpcao(1) == 2</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas1_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getValueOpcao(0) == 2 || agentes_PrincipioFundamentalContagem_1.getValueOpcao(1) == 2);
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas1 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas1_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas1_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas1 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas1(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas1_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas1(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas1
     */
    private void opcoesInvalidas1() {
			agentes_PrincipioFundamentalContagem_1.mostrarAlerta(2);
	    }



	
    /**
     * Identifiers of rule opcoesInvalidas1_1
     */
    private String[] identifiers_opcoesInvalidas1_1 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas1_1
     *
     * @return the identifiers declared in rule opcoesInvalidas1_1
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas1_1() {
         return identifiers_opcoesInvalidas1_1;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas1_1.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas1_1(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas1_1.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas1_1(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas1_1.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas1_1(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas1_1.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas1_1(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas1_1
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas1_1() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas1_1
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas1_1(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas1_1.<p>
     * The original expression was:<br>
     * <code>mult.getValueOpcao(0) == 2</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas1_1_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getValueOpcao(0) == 2);
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas1_1 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas1_1_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas1_1_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas1_1 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas1_1(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas1_1_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas1_1(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas1_1
     */
    private void opcoesInvalidas1_1() {
			agentes_PrincipioFundamentalContagem_1.setErrorOpcao(0);
	    }


	
	
    /**
     * Identifiers of rule opcoesInvalidas1_2
     */
    private String[] identifiers_opcoesInvalidas1_2 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas1_2
     *
     * @return the identifiers declared in rule opcoesInvalidas1_2
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas1_2() {
         return identifiers_opcoesInvalidas1_2;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas1_2.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas1_2(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas1_2.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas1_2(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas1_2.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas1_2(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas1_2.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas1_2(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas1_2
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas1_2() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas1_2
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas1_2(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas1_2.<p>
     * The original expression was:<br>
     * <code>mult.getValueOpcao(1) == 2</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas1_2_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getValueOpcao(1) == 2);
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas1_2 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas1_2_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas1_2_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas1_2 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas1_2(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas1_2_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas1_2(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas1_2
     */
    private void opcoesInvalidas1_2() {
			agentes_PrincipioFundamentalContagem_1.setErrorOpcao(1);
	    }


	
	
	
    /**
     * Identifiers of rule opcoesInvalidas2
     */
    private String[] identifiers_opcoesInvalidas2 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas2
     *
     * @return the identifiers declared in rule opcoesInvalidas2
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas2() {
         return identifiers_opcoesInvalidas2;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas2.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas2(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas2.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas2(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas2.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas2(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas2.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas2(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas2
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas2() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas2
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas2(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas2.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(1).isVisible() == true && (mult.getValueOpcao(2) == 2 || mult.getValueOpcao(3) == 2)</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas2_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(1).isVisible() == true && (agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) == 2 || agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) == 2));
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas2 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas2_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas2_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas2 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas2(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas2_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas2(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas2
     */
    private void opcoesInvalidas2() {
			agentes_PrincipioFundamentalContagem_1.mostrarAlerta(2);
	    }


	
	
    /**
     * Identifiers of rule opcoesInvalidas2_1
     */
    private String[] identifiers_opcoesInvalidas2_1 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas2_1
     *
     * @return the identifiers declared in rule opcoesInvalidas2_1
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas2_1() {
         return identifiers_opcoesInvalidas2_1;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas2_1.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas2_1(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas2_1.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas2_1(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas2_1.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas2_1(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas2_1.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas2_1(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas2_1
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas2_1() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas2_1
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas2_1(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas2_1.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(1).isVisible() == true && mult.getValueOpcao(2) == 2</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas2_1_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(1).isVisible() == true && agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) == 2);
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas2_1 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas2_1_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas2_1_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas2_1 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas2_1(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas2_1_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas2_1(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas2_1
     */
    private void opcoesInvalidas2_1() {
			agentes_PrincipioFundamentalContagem_1.setErrorOpcao(2);
	    }



	
    /**
     * Identifiers of rule opcoesInvalidas2_2
     */
    private String[] identifiers_opcoesInvalidas2_2 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas2_2
     *
     * @return the identifiers declared in rule opcoesInvalidas2_2
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas2_2() {
         return identifiers_opcoesInvalidas2_2;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas2_2.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas2_2(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas2_2.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas2_2(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas2_2.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas2_2(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas2_2.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas2_2(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas2_2
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas2_2() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas2_2
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas2_2(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas2_2.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(1).isVisible() == true && mult.getValueOpcao(3) == 2</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas2_2_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(1).isVisible() == true && agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) == 2);
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas2_2 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas2_2_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas2_2_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas2_2 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas2_2(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas2_2_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas2_2(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas2_2
     */
    private void opcoesInvalidas2_2() {
			agentes_PrincipioFundamentalContagem_1.setErrorOpcao(3);
	    }


		
	
    /**
     * Identifiers of rule opcoesInvalidas3
     */
    private String[] identifiers_opcoesInvalidas3 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas3
     *
     * @return the identifiers declared in rule opcoesInvalidas3
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas3() {
         return identifiers_opcoesInvalidas3;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas3.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas3(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas3.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas3(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas3.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas3(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas3.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas3(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas3
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas3() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas3
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas3(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas3.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(1).isVisible() == true && mult.getValueOpcao(2) == 4 && mult.getValueOpcao(3) == 4</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas3_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(1).isVisible() == true && agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) == 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) == 4);
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas3 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas3_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas3_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas3 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas3(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas3_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas3(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas3
     */
    private void opcoesInvalidas3() {
			agentes_PrincipioFundamentalContagem_1.mostrarAlerta(3);
			agentes_PrincipioFundamentalContagem_1.setOkOpcao(2);
			agentes_PrincipioFundamentalContagem_1.setErrorOpcao(3);
			agentes_PrincipioFundamentalContagem_1.getOpcao(2).setEditable(false);
	    }


	
	
    /**
     * Identifiers of rule opcoesInvalidas3_1
     */
    private String[] identifiers_opcoesInvalidas3_1 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas3_1
     *
     * @return the identifiers declared in rule opcoesInvalidas3_1
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas3_1() {
         return identifiers_opcoesInvalidas3_1;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas3_1.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas3_1(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas3_1.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas3_1(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas3_1.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas3_1(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas3_1.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas3_1(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas3_1
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas3_1() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas3_1
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas3_1(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas3_1.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(1).isVisible() == true && 
			(
				((mult.getValueOpcao(2) != 4 && mult.getValueOpcao(3) != 3) &&
				(mult.getValueOpcao(3) != 4 && mult.getValueOpcao(2) != 3)) ||
				((mult.getValueOpcao(3) == 4 && mult.getValueOpcao(2) != 3) &&
				(mult.getValueOpcao(2) == 4 && mult.getValueOpcao(3) != 3))
			)</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas3_1_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(1).isVisible() == true && 
			(
				((agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) != 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) != 3) &&
				(agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) != 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) != 3)) ||
				((agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) == 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) != 3) &&
				(agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) == 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) != 3))
			));
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas3_1 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas3_1_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas3_1_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas3_1 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas3_1(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas3_1_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas3_1(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas3_1
     */
    private void opcoesInvalidas3_1() {
			agentes_PrincipioFundamentalContagem_1.mostrarAlerta(9);
	    }


	
	
    /**
     * Identifiers of rule opcoesInvalidas3_2
     */
    private String[] identifiers_opcoesInvalidas3_2 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas3_2
     *
     * @return the identifiers declared in rule opcoesInvalidas3_2
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas3_2() {
         return identifiers_opcoesInvalidas3_2;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas3_2.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas3_2(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas3_2.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas3_2(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas3_2.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas3_2(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas3_2.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas3_2(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas3_2
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas3_2() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas3_2
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas3_2(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas3_2.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(1).isVisible() == true && 
			(mult.getValueOpcao(2) != 4 && mult.getValueOpcao(3) == 3) ||
			(mult.getValueOpcao(3) == 4 && mult.getValueOpcao(2) != 3)</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas3_2_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(1).isVisible() == true && 
			(agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) != 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) == 3) ||
			(agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) == 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) != 3));
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas3_2 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas3_2_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas3_2_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas3_2 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas3_2(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas3_2_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas3_2(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas3_2
     */
    private void opcoesInvalidas3_2() {
			agentes_PrincipioFundamentalContagem_1.setErrorOpcao(2);
	    }


	
	
    /**
     * Identifiers of rule opcoesInvalidas3_3
     */
    private String[] identifiers_opcoesInvalidas3_3 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas3_3
     *
     * @return the identifiers declared in rule opcoesInvalidas3_3
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas3_3() {
         return identifiers_opcoesInvalidas3_3;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas3_3.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas3_3(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas3_3.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas3_3(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas3_3.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas3_3(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas3_3.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas3_3(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas3_3
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas3_3() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas3_3
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas3_3(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas3_3.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(1).isVisible() == true && 
			(mult.getValueOpcao(3) != 4 && mult.getValueOpcao(2) == 3) ||
			(mult.getValueOpcao(2) == 4 && mult.getValueOpcao(3) != 3)</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas3_3_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(1).isVisible() == true && 
			(agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) != 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) == 3) ||
			(agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) == 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) != 3));
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas3_3 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas3_3_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas3_3_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas3_3 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas3_3(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas3_3_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas3_3(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas3_3
     */
    private void opcoesInvalidas3_3() {
			agentes_PrincipioFundamentalContagem_1.setErrorOpcao(3);
	    }


	
	
    /**
     * Identifiers of rule opcoesInvalidas3_4
     */
    private String[] identifiers_opcoesInvalidas3_4 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas3_4
     *
     * @return the identifiers declared in rule opcoesInvalidas3_4
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas3_4() {
         return identifiers_opcoesInvalidas3_4;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas3_4.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas3_4(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas3_4.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas3_4(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas3_4.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas3_4(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas3_4.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas3_4(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas3_4
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas3_4() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas3_4
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas3_4(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas3_4.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(1).isVisible() == true && 
			(	(mult.getValueOpcao(2) != 4 && mult.getValueOpcao(3) != 3) &&
				(mult.getValueOpcao(3) != 4 && mult.getValueOpcao(2) != 3) )</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas3_4_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(1).isVisible() == true && 
			(	(agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) != 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) != 3) &&
				(agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) != 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) != 3) ));
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas3_4 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas3_4_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas3_4_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas3_4 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas3_4(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas3_4_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas3_4(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas3_4
     */
    private void opcoesInvalidas3_4() {
			agentes_PrincipioFundamentalContagem_1.setErrorOpcao(2);
			agentes_PrincipioFundamentalContagem_1.setErrorOpcao(3);
	    }



	
    /**
     * Identifiers of rule opcoesInvalidas3_5
     */
    private String[] identifiers_opcoesInvalidas3_5 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas3_5
     *
     * @return the identifiers declared in rule opcoesInvalidas3_5
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas3_5() {
         return identifiers_opcoesInvalidas3_5;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas3_5.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas3_5(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas3_5.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas3_5(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas3_5.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas3_5(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas3_5.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas3_5(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas3_5
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas3_5() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas3_5
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas3_5(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas3_5.<p>
     * The original expression was:<br>
     * <code>mult.getPanel(1).isVisible() == true && 
			(
				(mult.getValueOpcao(2) != 4 && mult.getValueOpcao(3) == 3) ||
				(mult.getValueOpcao(3) != 4 && mult.getValueOpcao(2) == 3)
			)</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas3_5_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getPanel(1).isVisible() == true && 
			(
				(agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) != 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) == 3) ||
				(agentes_PrincipioFundamentalContagem_1.getValueOpcao(3) != 4 && agentes_PrincipioFundamentalContagem_1.getValueOpcao(2) == 3)
			));
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas3_5 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas3_5_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas3_5_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas3_5 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas3_5(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas3_5_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas3_5(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas3_5
     */
    private void opcoesInvalidas3_5() {
			agentes_PrincipioFundamentalContagem_1.mostrarAlerta(8);
	    }




	
    /**
     * Identifiers of rule opcoesInvalidas4
     */
    private String[] identifiers_opcoesInvalidas4 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas4
     *
     * @return the identifiers declared in rule opcoesInvalidas4
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas4() {
         return identifiers_opcoesInvalidas4;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas4.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas4(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas4.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas4(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas4.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas4(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas4.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas4(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas4
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas4() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas4
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas4(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas4.<p>
     * The original expression was:<br>
     * <code>(mult.getValueOpcao(0) > 4 || mult.getValueOpcao(1) > 4)</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas4_cond_0() {
        return ((agentes_PrincipioFundamentalContagem_1.getValueOpcao(0) > 4 || agentes_PrincipioFundamentalContagem_1.getValueOpcao(1) > 4));
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas4 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas4_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas4_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas4 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas4(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas4_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas4(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas4
     */
    private void opcoesInvalidas4() {
			agentes_PrincipioFundamentalContagem_1.mostrarAlerta(5);
	    }


	
	
    /**
     * Identifiers of rule opcoesInvalidas4_1
     */
    private String[] identifiers_opcoesInvalidas4_1 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas4_1
     *
     * @return the identifiers declared in rule opcoesInvalidas4_1
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas4_1() {
         return identifiers_opcoesInvalidas4_1;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas4_1.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas4_1(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas4_1.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas4_1(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas4_1.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas4_1(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas4_1.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas4_1(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas4_1
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas4_1() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas4_1
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas4_1(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas4_1.<p>
     * The original expression was:<br>
     * <code>mult.getValueOpcao(0) > 4</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas4_1_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getValueOpcao(0) > 4);
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas4_1 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas4_1_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas4_1_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas4_1 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas4_1(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas4_1_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas4_1(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas4_1
     */
    private void opcoesInvalidas4_1() {
			agentes_PrincipioFundamentalContagem_1.setErrorOpcao(0);
	    }


	
	
    /**
     * Identifiers of rule opcoesInvalidas4_2
     */
    private String[] identifiers_opcoesInvalidas4_2 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas4_2
     *
     * @return the identifiers declared in rule opcoesInvalidas4_2
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas4_2() {
         return identifiers_opcoesInvalidas4_2;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas4_2.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas4_2(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas4_2.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas4_2(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas4_2.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas4_2(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas4_2.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas4_2(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas4_2
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas4_2() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas4_2
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas4_2(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas4_2.<p>
     * The original expression was:<br>
     * <code>mult.getValueOpcao(1) > 4</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas4_2_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getValueOpcao(1) > 4);
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas4_2 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas4_2_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas4_2_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas4_2 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas4_2(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas4_2_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas4_2(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas4_2
     */
    private void opcoesInvalidas4_2() {
			agentes_PrincipioFundamentalContagem_1.setErrorOpcao(1);
	    }

	
	
	
    /**
     * Identifiers of rule opcoesInvalidas5
     */
    private String[] identifiers_opcoesInvalidas5 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas5
     *
     * @return the identifiers declared in rule opcoesInvalidas5
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas5() {
         return identifiers_opcoesInvalidas5;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas5.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas5(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas5.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas5(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas5.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas5(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas5.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas5(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas5
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas5() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas5
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas5(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas5.<p>
     * The original expression was:<br>
     * <code>mult.getValueOpcao(0) != 4 || mult.getValueOpcao(1) != 4</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas5_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getValueOpcao(0) != 4 || agentes_PrincipioFundamentalContagem_1.getValueOpcao(1) != 4);
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas5 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas5_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas5_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas5 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas5(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas5_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas5(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas5
     */
    private void opcoesInvalidas5() {
			agentes_PrincipioFundamentalContagem_1.mostrarAlerta(8);
	    }



	
    /**
     * Identifiers of rule opcoesInvalidas5_1
     */
    private String[] identifiers_opcoesInvalidas5_1 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas5_1
     *
     * @return the identifiers declared in rule opcoesInvalidas5_1
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas5_1() {
         return identifiers_opcoesInvalidas5_1;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas5_1.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas5_1(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas5_1.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas5_1(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas5_1.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas5_1(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas5_1.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas5_1(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas5_1
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas5_1() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas5_1
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas5_1(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas5_1.<p>
     * The original expression was:<br>
     * <code>mult.getValueOpcao(0) != 4</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas5_1_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getValueOpcao(0) != 4);
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas5_1 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas5_1_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas5_1_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas5_1 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas5_1(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas5_1_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas5_1(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas5_1
     */
    private void opcoesInvalidas5_1() {
			agentes_PrincipioFundamentalContagem_1.setErrorOpcao(0);
	    }


	
	
    /**
     * Identifiers of rule opcoesInvalidas5_2
     */
    private String[] identifiers_opcoesInvalidas5_2 = {
        "mult"
    };

    /**
     * Returns the identifiers declared in rule opcoesInvalidas5_2
     *
     * @return the identifiers declared in rule opcoesInvalidas5_2
     */
    private String[] getDeclaredIdentifiers_opcoesInvalidas5_2() {
         return identifiers_opcoesInvalidas5_2;
    }

    /**
     * Returns the name of the class of one declared object for
     * rule opcoesInvalidas5_2.
     *
     * @param index the index of the declaration
     * @return the name of the class of the declared objects for
     *          this rule.
     */
    private String getDeclaredClassName_opcoesInvalidas5_2(int index) {
        switch (index) {
            case 0: return "agentes.PrincipioFundamentalContagem";
            default: return null;
        }
    }

    /**
     * Returns the class of one declared object for rule opcoesInvalidas5_2.
     *
     * @param index the index of the declaration
     * @return the class of the declared objects for this rule.
     */
    private Class getDeclaredClass_opcoesInvalidas5_2(int index) {
        switch (index) {
            case 0: return agentes.PrincipioFundamentalContagem.class;
            default: return null;
        }
    }

    /**
     * Sets an object declared in the rule opcoesInvalidas5_2.
     *
     * @param index the index of the declared object
     * @param value the value of the object being set.
     */
    private void setObject_opcoesInvalidas5_2(int index, Object value) {
        switch (index) {
            case 0: this.agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) value; break;
        }
    }

    /**
     * Returns an object declared in the rule opcoesInvalidas5_2.
     *
     * @param index the index of the declared object
     * @return the value of the corresponding object.
     */
    private Object getObject_opcoesInvalidas5_2(int index) {
        switch (index) {
            case 0: return agentes_PrincipioFundamentalContagem_1;
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations 
     * of rule opcoesInvalidas5_2
     *
     * @return an object array of the variables bound to the
     *          declarations of this rule.
     */
    private Object[] getObjects_opcoesInvalidas5_2() {
        return new Object[] {
                            agentes_PrincipioFundamentalContagem_1
                            };
    }

    /**
     * Defines all variables bound to the declarations 
     * of rule opcoesInvalidas5_2
     *
     * @param objects an object array of the variables bound to the
     *          declarations of this rule.
     */
    private void setObjects_opcoesInvalidas5_2(Object[] objects) {
        agentes_PrincipioFundamentalContagem_1 = (agentes.PrincipioFundamentalContagem) objects[0];
    }

    /**
     * Condition 0 of rule opcoesInvalidas5_2.<p>
     * The original expression was:<br>
     * <code>mult.getValueOpcao(1) != 4</code>
     *
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas5_2_cond_0() {
        return (agentes_PrincipioFundamentalContagem_1.getValueOpcao(1) != 4);
    }

    /**
     * Checks whether some conditions of rule opcoesInvalidas5_2 is satisfied.
     *
     * @param index the index of the condition to be checked.
     * @return <code>true</code> if the condition is satisfied;
     *          <code>false</code> otherwise.
     */
    private boolean opcoesInvalidas5_2_cond(int index) {
        switch (index) {
            case 0: return opcoesInvalidas5_2_cond_0();
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of rule opcoesInvalidas5_2 that depend only on
     * the given object are satisfied.
     *
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          this rule are satisfied; <code>false</code> otherwise.
     */
    private boolean checkConditionsOnlyOf_opcoesInvalidas5_2(int declIndex) {
        switch (declIndex) {
            case 0:
                if (!opcoesInvalidas5_2_cond_0()) return false;
                return true;
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference some declared element of the declarations are
     * true.
     *
     * @param declIndex the index of the declared element.
     * @return <code>true</code> if the conditions that reference
     *          up to the given declaration are true;
     *          <code>false</code> otherwise.
     */
    private boolean checkCondForDeclaration_opcoesInvalidas5_2(int declIndex) {
        switch (declIndex) {
            case 0:
                return true;
            default: return false;
        }
    }

    /**
     * Executes the action part of the rule opcoesInvalidas5_2
     */
    private void opcoesInvalidas5_2() {
			agentes_PrincipioFundamentalContagem_1.setErrorOpcao(1);
	    }



    /**
     * The names of the rules in this class file
     */
    private static final String[] File_ruleNames = {
        "verificaPreenchimento",
        "verificaPreenchimento2",
        "verificaPreenchimento3",
        "habilitaCampos",
        "habilitaCampos1",
        "respostaValida",
        "respostaInvalida1",
        "opcoesValidas1",
        "opcoesValidas1_1",
        "opcoesValidas2",
        "opcoesValidas3",
        "opcoesValidas4",
        "opcoesValidas5",
        "opcoesInvalidas1",
        "opcoesInvalidas1_1",
        "opcoesInvalidas1_2",
        "opcoesInvalidas2",
        "opcoesInvalidas2_1",
        "opcoesInvalidas2_2",
        "opcoesInvalidas3",
        "opcoesInvalidas3_1",
        "opcoesInvalidas3_2",
        "opcoesInvalidas3_3",
        "opcoesInvalidas3_4",
        "opcoesInvalidas3_5",
        "opcoesInvalidas4",
        "opcoesInvalidas4_1",
        "opcoesInvalidas4_2",
        "opcoesInvalidas5",
        "opcoesInvalidas5_1",
        "opcoesInvalidas5_2"
    };

    /**
     * Returns the name of the rules in this class file.
     *
     * @return the name of the rules in this class file.
     */
    public String[] getRuleNames() {
        return File_ruleNames;
    }

    /**
     * The number of declarations of the rules in this class file.
     */
    private static final int[] File_numberOfDeclarations = {
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1
    };

    /**
     * Returns the number of declarations of the rules in this class file.
     *
     * @return the number of declarations  of the rules in this class file.
     */
    public int[] getNumberOfDeclarations() {
        return File_numberOfDeclarations;
    }

    /**
     * The number of conditions of the rules in this class file.
     */
    private static final int[] File_numberOfConditions = {
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1,
        1
    };

    /**
     * Returns the number of conditions of the rules in this class file.
     *
     * @return the number of conditions  of the rules in this class file.
     */
    public int[] getNumberOfConditions() {
        return File_numberOfConditions;
    }

    /**
     * Checks whether a condition of some rule is satisfied.
     *
     * @param ruleIndex the index of the rule to be checked
     * @param condIndex the index of the condition to be checked
     * @return <code>true</code> if the corresponding condition for the
     *          given rule is satisfied. <code>false</code> otherwise.
     */
    public boolean checkCondition(int ruleIndex, int condIndex) {
        switch (ruleIndex) {
            case 0: return verificaPreenchimento_cond(condIndex);
            case 1: return verificaPreenchimento2_cond(condIndex);
            case 2: return verificaPreenchimento3_cond(condIndex);
            case 3: return habilitaCampos_cond(condIndex);
            case 4: return habilitaCampos1_cond(condIndex);
            case 5: return respostaValida_cond(condIndex);
            case 6: return respostaInvalida1_cond(condIndex);
            case 7: return opcoesValidas1_cond(condIndex);
            case 8: return opcoesValidas1_1_cond(condIndex);
            case 9: return opcoesValidas2_cond(condIndex);
            case 10: return opcoesValidas3_cond(condIndex);
            case 11: return opcoesValidas4_cond(condIndex);
            case 12: return opcoesValidas5_cond(condIndex);
            case 13: return opcoesInvalidas1_cond(condIndex);
            case 14: return opcoesInvalidas1_1_cond(condIndex);
            case 15: return opcoesInvalidas1_2_cond(condIndex);
            case 16: return opcoesInvalidas2_cond(condIndex);
            case 17: return opcoesInvalidas2_1_cond(condIndex);
            case 18: return opcoesInvalidas2_2_cond(condIndex);
            case 19: return opcoesInvalidas3_cond(condIndex);
            case 20: return opcoesInvalidas3_1_cond(condIndex);
            case 21: return opcoesInvalidas3_2_cond(condIndex);
            case 22: return opcoesInvalidas3_3_cond(condIndex);
            case 23: return opcoesInvalidas3_4_cond(condIndex);
            case 24: return opcoesInvalidas3_5_cond(condIndex);
            case 25: return opcoesInvalidas4_cond(condIndex);
            case 26: return opcoesInvalidas4_1_cond(condIndex);
            case 27: return opcoesInvalidas4_2_cond(condIndex);
            case 28: return opcoesInvalidas5_cond(condIndex);
            case 29: return opcoesInvalidas5_1_cond(condIndex);
            case 30: return opcoesInvalidas5_2_cond(condIndex);
            default: return false;
        }
    }

    /**
     * Checks whether all conditions of some rule that depend only on
     * the given object are satisfied.
     *
     * @param ruleIndex the index of the rule to be checked
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all corresponding conditions for
     *          the given rule are satisfied;
     *           <code>false</code> otherwise.
     */
    public boolean checkConditionsOnlyOf(int ruleIndex, int declIndex) {
        switch (ruleIndex) {
            case 0: return checkConditionsOnlyOf_verificaPreenchimento(declIndex);
            case 1: return checkConditionsOnlyOf_verificaPreenchimento2(declIndex);
            case 2: return checkConditionsOnlyOf_verificaPreenchimento3(declIndex);
            case 3: return checkConditionsOnlyOf_habilitaCampos(declIndex);
            case 4: return checkConditionsOnlyOf_habilitaCampos1(declIndex);
            case 5: return checkConditionsOnlyOf_respostaValida(declIndex);
            case 6: return checkConditionsOnlyOf_respostaInvalida1(declIndex);
            case 7: return checkConditionsOnlyOf_opcoesValidas1(declIndex);
            case 8: return checkConditionsOnlyOf_opcoesValidas1_1(declIndex);
            case 9: return checkConditionsOnlyOf_opcoesValidas2(declIndex);
            case 10: return checkConditionsOnlyOf_opcoesValidas3(declIndex);
            case 11: return checkConditionsOnlyOf_opcoesValidas4(declIndex);
            case 12: return checkConditionsOnlyOf_opcoesValidas5(declIndex);
            case 13: return checkConditionsOnlyOf_opcoesInvalidas1(declIndex);
            case 14: return checkConditionsOnlyOf_opcoesInvalidas1_1(declIndex);
            case 15: return checkConditionsOnlyOf_opcoesInvalidas1_2(declIndex);
            case 16: return checkConditionsOnlyOf_opcoesInvalidas2(declIndex);
            case 17: return checkConditionsOnlyOf_opcoesInvalidas2_1(declIndex);
            case 18: return checkConditionsOnlyOf_opcoesInvalidas2_2(declIndex);
            case 19: return checkConditionsOnlyOf_opcoesInvalidas3(declIndex);
            case 20: return checkConditionsOnlyOf_opcoesInvalidas3_1(declIndex);
            case 21: return checkConditionsOnlyOf_opcoesInvalidas3_2(declIndex);
            case 22: return checkConditionsOnlyOf_opcoesInvalidas3_3(declIndex);
            case 23: return checkConditionsOnlyOf_opcoesInvalidas3_4(declIndex);
            case 24: return checkConditionsOnlyOf_opcoesInvalidas3_5(declIndex);
            case 25: return checkConditionsOnlyOf_opcoesInvalidas4(declIndex);
            case 26: return checkConditionsOnlyOf_opcoesInvalidas4_1(declIndex);
            case 27: return checkConditionsOnlyOf_opcoesInvalidas4_2(declIndex);
            case 28: return checkConditionsOnlyOf_opcoesInvalidas5(declIndex);
            case 29: return checkConditionsOnlyOf_opcoesInvalidas5_1(declIndex);
            case 30: return checkConditionsOnlyOf_opcoesInvalidas5_2(declIndex);
            default: return false;
        }
    }

    /**
     * Checks whether all the conditions of a rule which
     * reference only the elements declared up to the given index
     * are true.
     *
     * @param ruleIndex the index of the rule to be checked
     * @param declIndex the index of the declaration to be checked
     * @return <code>true</code> if all the conditions of a rule which
     *          reference only the elements declared up to the given index
     *          are satisfied; <code>false</code> otherwise.
     */
    public boolean checkCondForDeclaration(int ruleIndex, int declIndex) {
        switch (ruleIndex) {
            case 0: return checkCondForDeclaration_verificaPreenchimento(declIndex);
            case 1: return checkCondForDeclaration_verificaPreenchimento2(declIndex);
            case 2: return checkCondForDeclaration_verificaPreenchimento3(declIndex);
            case 3: return checkCondForDeclaration_habilitaCampos(declIndex);
            case 4: return checkCondForDeclaration_habilitaCampos1(declIndex);
            case 5: return checkCondForDeclaration_respostaValida(declIndex);
            case 6: return checkCondForDeclaration_respostaInvalida1(declIndex);
            case 7: return checkCondForDeclaration_opcoesValidas1(declIndex);
            case 8: return checkCondForDeclaration_opcoesValidas1_1(declIndex);
            case 9: return checkCondForDeclaration_opcoesValidas2(declIndex);
            case 10: return checkCondForDeclaration_opcoesValidas3(declIndex);
            case 11: return checkCondForDeclaration_opcoesValidas4(declIndex);
            case 12: return checkCondForDeclaration_opcoesValidas5(declIndex);
            case 13: return checkCondForDeclaration_opcoesInvalidas1(declIndex);
            case 14: return checkCondForDeclaration_opcoesInvalidas1_1(declIndex);
            case 15: return checkCondForDeclaration_opcoesInvalidas1_2(declIndex);
            case 16: return checkCondForDeclaration_opcoesInvalidas2(declIndex);
            case 17: return checkCondForDeclaration_opcoesInvalidas2_1(declIndex);
            case 18: return checkCondForDeclaration_opcoesInvalidas2_2(declIndex);
            case 19: return checkCondForDeclaration_opcoesInvalidas3(declIndex);
            case 20: return checkCondForDeclaration_opcoesInvalidas3_1(declIndex);
            case 21: return checkCondForDeclaration_opcoesInvalidas3_2(declIndex);
            case 22: return checkCondForDeclaration_opcoesInvalidas3_3(declIndex);
            case 23: return checkCondForDeclaration_opcoesInvalidas3_4(declIndex);
            case 24: return checkCondForDeclaration_opcoesInvalidas3_5(declIndex);
            case 25: return checkCondForDeclaration_opcoesInvalidas4(declIndex);
            case 26: return checkCondForDeclaration_opcoesInvalidas4_1(declIndex);
            case 27: return checkCondForDeclaration_opcoesInvalidas4_2(declIndex);
            case 28: return checkCondForDeclaration_opcoesInvalidas5(declIndex);
            case 29: return checkCondForDeclaration_opcoesInvalidas5_1(declIndex);
            case 30: return checkCondForDeclaration_opcoesInvalidas5_2(declIndex);
            default: return false;
        }
    }

    /**
     * Returns the class name of an object declared in a rule.
     *
     * @param ruleIndex the index of the rule
     * @param declIndex the index of the declaration
     * @return the class name of the declared object.
     */
    public String getDeclaredClassName(int ruleIndex, int declIndex) {
        switch (ruleIndex) {
            case 0: return getDeclaredClassName_verificaPreenchimento(declIndex);
            case 1: return getDeclaredClassName_verificaPreenchimento2(declIndex);
            case 2: return getDeclaredClassName_verificaPreenchimento3(declIndex);
            case 3: return getDeclaredClassName_habilitaCampos(declIndex);
            case 4: return getDeclaredClassName_habilitaCampos1(declIndex);
            case 5: return getDeclaredClassName_respostaValida(declIndex);
            case 6: return getDeclaredClassName_respostaInvalida1(declIndex);
            case 7: return getDeclaredClassName_opcoesValidas1(declIndex);
            case 8: return getDeclaredClassName_opcoesValidas1_1(declIndex);
            case 9: return getDeclaredClassName_opcoesValidas2(declIndex);
            case 10: return getDeclaredClassName_opcoesValidas3(declIndex);
            case 11: return getDeclaredClassName_opcoesValidas4(declIndex);
            case 12: return getDeclaredClassName_opcoesValidas5(declIndex);
            case 13: return getDeclaredClassName_opcoesInvalidas1(declIndex);
            case 14: return getDeclaredClassName_opcoesInvalidas1_1(declIndex);
            case 15: return getDeclaredClassName_opcoesInvalidas1_2(declIndex);
            case 16: return getDeclaredClassName_opcoesInvalidas2(declIndex);
            case 17: return getDeclaredClassName_opcoesInvalidas2_1(declIndex);
            case 18: return getDeclaredClassName_opcoesInvalidas2_2(declIndex);
            case 19: return getDeclaredClassName_opcoesInvalidas3(declIndex);
            case 20: return getDeclaredClassName_opcoesInvalidas3_1(declIndex);
            case 21: return getDeclaredClassName_opcoesInvalidas3_2(declIndex);
            case 22: return getDeclaredClassName_opcoesInvalidas3_3(declIndex);
            case 23: return getDeclaredClassName_opcoesInvalidas3_4(declIndex);
            case 24: return getDeclaredClassName_opcoesInvalidas3_5(declIndex);
            case 25: return getDeclaredClassName_opcoesInvalidas4(declIndex);
            case 26: return getDeclaredClassName_opcoesInvalidas4_1(declIndex);
            case 27: return getDeclaredClassName_opcoesInvalidas4_2(declIndex);
            case 28: return getDeclaredClassName_opcoesInvalidas5(declIndex);
            case 29: return getDeclaredClassName_opcoesInvalidas5_1(declIndex);
            case 30: return getDeclaredClassName_opcoesInvalidas5_2(declIndex);
            default: return null;
        }
    }

    /**
     * Returns the class of an object declared in a rule.
     *
     * @param ruleIndex the index of the rule
     * @param declIndex the index of the declaration
     * @return the class of the declared object.
     */
    public Class getDeclaredClass(int ruleIndex, int declIndex) {
        switch (ruleIndex) {
            case 0: return getDeclaredClass_verificaPreenchimento(declIndex);
            case 1: return getDeclaredClass_verificaPreenchimento2(declIndex);
            case 2: return getDeclaredClass_verificaPreenchimento3(declIndex);
            case 3: return getDeclaredClass_habilitaCampos(declIndex);
            case 4: return getDeclaredClass_habilitaCampos1(declIndex);
            case 5: return getDeclaredClass_respostaValida(declIndex);
            case 6: return getDeclaredClass_respostaInvalida1(declIndex);
            case 7: return getDeclaredClass_opcoesValidas1(declIndex);
            case 8: return getDeclaredClass_opcoesValidas1_1(declIndex);
            case 9: return getDeclaredClass_opcoesValidas2(declIndex);
            case 10: return getDeclaredClass_opcoesValidas3(declIndex);
            case 11: return getDeclaredClass_opcoesValidas4(declIndex);
            case 12: return getDeclaredClass_opcoesValidas5(declIndex);
            case 13: return getDeclaredClass_opcoesInvalidas1(declIndex);
            case 14: return getDeclaredClass_opcoesInvalidas1_1(declIndex);
            case 15: return getDeclaredClass_opcoesInvalidas1_2(declIndex);
            case 16: return getDeclaredClass_opcoesInvalidas2(declIndex);
            case 17: return getDeclaredClass_opcoesInvalidas2_1(declIndex);
            case 18: return getDeclaredClass_opcoesInvalidas2_2(declIndex);
            case 19: return getDeclaredClass_opcoesInvalidas3(declIndex);
            case 20: return getDeclaredClass_opcoesInvalidas3_1(declIndex);
            case 21: return getDeclaredClass_opcoesInvalidas3_2(declIndex);
            case 22: return getDeclaredClass_opcoesInvalidas3_3(declIndex);
            case 23: return getDeclaredClass_opcoesInvalidas3_4(declIndex);
            case 24: return getDeclaredClass_opcoesInvalidas3_5(declIndex);
            case 25: return getDeclaredClass_opcoesInvalidas4(declIndex);
            case 26: return getDeclaredClass_opcoesInvalidas4_1(declIndex);
            case 27: return getDeclaredClass_opcoesInvalidas4_2(declIndex);
            case 28: return getDeclaredClass_opcoesInvalidas5(declIndex);
            case 29: return getDeclaredClass_opcoesInvalidas5_1(declIndex);
            case 30: return getDeclaredClass_opcoesInvalidas5_2(declIndex);
            default: return null;
        }
    }

    /**
     * Fires one of the rules in this rule base.
     *
     * @param ruleIndex the index of the rule to be fired
     */
    protected void internalFireRule(int ruleIndex) {
        switch (ruleIndex) {
            case 0: verificaPreenchimento(); break;
            case 1: verificaPreenchimento2(); break;
            case 2: verificaPreenchimento3(); break;
            case 3: habilitaCampos(); break;
            case 4: habilitaCampos1(); break;
            case 5: respostaValida(); break;
            case 6: respostaInvalida1(); break;
            case 7: opcoesValidas1(); break;
            case 8: opcoesValidas1_1(); break;
            case 9: opcoesValidas2(); break;
            case 10: opcoesValidas3(); break;
            case 11: opcoesValidas4(); break;
            case 12: opcoesValidas5(); break;
            case 13: opcoesInvalidas1(); break;
            case 14: opcoesInvalidas1_1(); break;
            case 15: opcoesInvalidas1_2(); break;
            case 16: opcoesInvalidas2(); break;
            case 17: opcoesInvalidas2_1(); break;
            case 18: opcoesInvalidas2_2(); break;
            case 19: opcoesInvalidas3(); break;
            case 20: opcoesInvalidas3_1(); break;
            case 21: opcoesInvalidas3_2(); break;
            case 22: opcoesInvalidas3_3(); break;
            case 23: opcoesInvalidas3_4(); break;
            case 24: opcoesInvalidas3_5(); break;
            case 25: opcoesInvalidas4(); break;
            case 26: opcoesInvalidas4_1(); break;
            case 27: opcoesInvalidas4_2(); break;
            case 28: opcoesInvalidas5(); break;
            case 29: opcoesInvalidas5_1(); break;
            case 30: opcoesInvalidas5_2(); break;
        }
    }

    /**
     * Returns the number of rules.
     *
     * @return the number of rules.
     */
    public int getNumberOfRules() {
        return 31;
    }

    /**
     * Returns the identifiers declared in a given rule.
     *
     * @param ruleIndex the index of the rule.
     * @return an array with the identifiers of the rule declarations.
     */
    public String[] getDeclaredIdentifiers(int ruleIndex) {
        switch (ruleIndex) {
            case 0: return getDeclaredIdentifiers_verificaPreenchimento();
            case 1: return getDeclaredIdentifiers_verificaPreenchimento2();
            case 2: return getDeclaredIdentifiers_verificaPreenchimento3();
            case 3: return getDeclaredIdentifiers_habilitaCampos();
            case 4: return getDeclaredIdentifiers_habilitaCampos1();
            case 5: return getDeclaredIdentifiers_respostaValida();
            case 6: return getDeclaredIdentifiers_respostaInvalida1();
            case 7: return getDeclaredIdentifiers_opcoesValidas1();
            case 8: return getDeclaredIdentifiers_opcoesValidas1_1();
            case 9: return getDeclaredIdentifiers_opcoesValidas2();
            case 10: return getDeclaredIdentifiers_opcoesValidas3();
            case 11: return getDeclaredIdentifiers_opcoesValidas4();
            case 12: return getDeclaredIdentifiers_opcoesValidas5();
            case 13: return getDeclaredIdentifiers_opcoesInvalidas1();
            case 14: return getDeclaredIdentifiers_opcoesInvalidas1_1();
            case 15: return getDeclaredIdentifiers_opcoesInvalidas1_2();
            case 16: return getDeclaredIdentifiers_opcoesInvalidas2();
            case 17: return getDeclaredIdentifiers_opcoesInvalidas2_1();
            case 18: return getDeclaredIdentifiers_opcoesInvalidas2_2();
            case 19: return getDeclaredIdentifiers_opcoesInvalidas3();
            case 20: return getDeclaredIdentifiers_opcoesInvalidas3_1();
            case 21: return getDeclaredIdentifiers_opcoesInvalidas3_2();
            case 22: return getDeclaredIdentifiers_opcoesInvalidas3_3();
            case 23: return getDeclaredIdentifiers_opcoesInvalidas3_4();
            case 24: return getDeclaredIdentifiers_opcoesInvalidas3_5();
            case 25: return getDeclaredIdentifiers_opcoesInvalidas4();
            case 26: return getDeclaredIdentifiers_opcoesInvalidas4_1();
            case 27: return getDeclaredIdentifiers_opcoesInvalidas4_2();
            case 28: return getDeclaredIdentifiers_opcoesInvalidas5();
            case 29: return getDeclaredIdentifiers_opcoesInvalidas5_1();
            case 30: return getDeclaredIdentifiers_opcoesInvalidas5_2();
            default: return new String[0];
        }
    }

    /**
     * Sets an object that represents a declaration of some rule.
     *
     * @param ruleIndex the index of the rule
     * @param declIndex the index of the declaration in the rule.
     * @param value the value of the object being set.
     */
    public void setObject(int ruleIndex, int declIndex, Object value) {
        switch (ruleIndex) {
            case 0: setObject_verificaPreenchimento(declIndex, value); break;
            case 1: setObject_verificaPreenchimento2(declIndex, value); break;
            case 2: setObject_verificaPreenchimento3(declIndex, value); break;
            case 3: setObject_habilitaCampos(declIndex, value); break;
            case 4: setObject_habilitaCampos1(declIndex, value); break;
            case 5: setObject_respostaValida(declIndex, value); break;
            case 6: setObject_respostaInvalida1(declIndex, value); break;
            case 7: setObject_opcoesValidas1(declIndex, value); break;
            case 8: setObject_opcoesValidas1_1(declIndex, value); break;
            case 9: setObject_opcoesValidas2(declIndex, value); break;
            case 10: setObject_opcoesValidas3(declIndex, value); break;
            case 11: setObject_opcoesValidas4(declIndex, value); break;
            case 12: setObject_opcoesValidas5(declIndex, value); break;
            case 13: setObject_opcoesInvalidas1(declIndex, value); break;
            case 14: setObject_opcoesInvalidas1_1(declIndex, value); break;
            case 15: setObject_opcoesInvalidas1_2(declIndex, value); break;
            case 16: setObject_opcoesInvalidas2(declIndex, value); break;
            case 17: setObject_opcoesInvalidas2_1(declIndex, value); break;
            case 18: setObject_opcoesInvalidas2_2(declIndex, value); break;
            case 19: setObject_opcoesInvalidas3(declIndex, value); break;
            case 20: setObject_opcoesInvalidas3_1(declIndex, value); break;
            case 21: setObject_opcoesInvalidas3_2(declIndex, value); break;
            case 22: setObject_opcoesInvalidas3_3(declIndex, value); break;
            case 23: setObject_opcoesInvalidas3_4(declIndex, value); break;
            case 24: setObject_opcoesInvalidas3_5(declIndex, value); break;
            case 25: setObject_opcoesInvalidas4(declIndex, value); break;
            case 26: setObject_opcoesInvalidas4_1(declIndex, value); break;
            case 27: setObject_opcoesInvalidas4_2(declIndex, value); break;
            case 28: setObject_opcoesInvalidas5(declIndex, value); break;
            case 29: setObject_opcoesInvalidas5_1(declIndex, value); break;
            case 30: setObject_opcoesInvalidas5_2(declIndex, value); break;
        }
    }

    /**
     * Returns an object that represents a declaration of some rule.
     *
     * @param ruleIndex the index of the rule
     * @param declIndex the index of the declaration in the rule.
     * @return the value of the corresponding object.
     */
    public Object getObject(int ruleIndex, int declIndex) {
        switch (ruleIndex) {
            case 0: return getObject_verificaPreenchimento(declIndex);
            case 1: return getObject_verificaPreenchimento2(declIndex);
            case 2: return getObject_verificaPreenchimento3(declIndex);
            case 3: return getObject_habilitaCampos(declIndex);
            case 4: return getObject_habilitaCampos1(declIndex);
            case 5: return getObject_respostaValida(declIndex);
            case 6: return getObject_respostaInvalida1(declIndex);
            case 7: return getObject_opcoesValidas1(declIndex);
            case 8: return getObject_opcoesValidas1_1(declIndex);
            case 9: return getObject_opcoesValidas2(declIndex);
            case 10: return getObject_opcoesValidas3(declIndex);
            case 11: return getObject_opcoesValidas4(declIndex);
            case 12: return getObject_opcoesValidas5(declIndex);
            case 13: return getObject_opcoesInvalidas1(declIndex);
            case 14: return getObject_opcoesInvalidas1_1(declIndex);
            case 15: return getObject_opcoesInvalidas1_2(declIndex);
            case 16: return getObject_opcoesInvalidas2(declIndex);
            case 17: return getObject_opcoesInvalidas2_1(declIndex);
            case 18: return getObject_opcoesInvalidas2_2(declIndex);
            case 19: return getObject_opcoesInvalidas3(declIndex);
            case 20: return getObject_opcoesInvalidas3_1(declIndex);
            case 21: return getObject_opcoesInvalidas3_2(declIndex);
            case 22: return getObject_opcoesInvalidas3_3(declIndex);
            case 23: return getObject_opcoesInvalidas3_4(declIndex);
            case 24: return getObject_opcoesInvalidas3_5(declIndex);
            case 25: return getObject_opcoesInvalidas4(declIndex);
            case 26: return getObject_opcoesInvalidas4_1(declIndex);
            case 27: return getObject_opcoesInvalidas4_2(declIndex);
            case 28: return getObject_opcoesInvalidas5(declIndex);
            case 29: return getObject_opcoesInvalidas5_1(declIndex);
            case 30: return getObject_opcoesInvalidas5_2(declIndex);
            default: return null;
        }
    }

    /**
     * Returns all variables bound to the declarations of
     * some rule.
     *
     * @param ruleIndex the index of the rule
     * @return an object array of the variables bound to the
     *          declarations of some rule.
     */
    public Object[] getObjects(int ruleIndex) {
        switch (ruleIndex) {
            case 0: return getObjects_verificaPreenchimento();
            case 1: return getObjects_verificaPreenchimento2();
            case 2: return getObjects_verificaPreenchimento3();
            case 3: return getObjects_habilitaCampos();
            case 4: return getObjects_habilitaCampos1();
            case 5: return getObjects_respostaValida();
            case 6: return getObjects_respostaInvalida1();
            case 7: return getObjects_opcoesValidas1();
            case 8: return getObjects_opcoesValidas1_1();
            case 9: return getObjects_opcoesValidas2();
            case 10: return getObjects_opcoesValidas3();
            case 11: return getObjects_opcoesValidas4();
            case 12: return getObjects_opcoesValidas5();
            case 13: return getObjects_opcoesInvalidas1();
            case 14: return getObjects_opcoesInvalidas1_1();
            case 15: return getObjects_opcoesInvalidas1_2();
            case 16: return getObjects_opcoesInvalidas2();
            case 17: return getObjects_opcoesInvalidas2_1();
            case 18: return getObjects_opcoesInvalidas2_2();
            case 19: return getObjects_opcoesInvalidas3();
            case 20: return getObjects_opcoesInvalidas3_1();
            case 21: return getObjects_opcoesInvalidas3_2();
            case 22: return getObjects_opcoesInvalidas3_3();
            case 23: return getObjects_opcoesInvalidas3_4();
            case 24: return getObjects_opcoesInvalidas3_5();
            case 25: return getObjects_opcoesInvalidas4();
            case 26: return getObjects_opcoesInvalidas4_1();
            case 27: return getObjects_opcoesInvalidas4_2();
            case 28: return getObjects_opcoesInvalidas5();
            case 29: return getObjects_opcoesInvalidas5_1();
            case 30: return getObjects_opcoesInvalidas5_2();
            default: return null;
        }
    }
    /**
     * Defines all variables bound to the declarations of
     * some rule.
     *
     * @param ruleIndex the index of the rule
     * @param objects an object array of the variables bound to the
     *          declarations of some rule.
     */
    public void setObjects(int ruleIndex, Object[] objects) {
        switch (ruleIndex) {
            case 0: setObjects_verificaPreenchimento(objects); break;
            case 1: setObjects_verificaPreenchimento2(objects); break;
            case 2: setObjects_verificaPreenchimento3(objects); break;
            case 3: setObjects_habilitaCampos(objects); break;
            case 4: setObjects_habilitaCampos1(objects); break;
            case 5: setObjects_respostaValida(objects); break;
            case 6: setObjects_respostaInvalida1(objects); break;
            case 7: setObjects_opcoesValidas1(objects); break;
            case 8: setObjects_opcoesValidas1_1(objects); break;
            case 9: setObjects_opcoesValidas2(objects); break;
            case 10: setObjects_opcoesValidas3(objects); break;
            case 11: setObjects_opcoesValidas4(objects); break;
            case 12: setObjects_opcoesValidas5(objects); break;
            case 13: setObjects_opcoesInvalidas1(objects); break;
            case 14: setObjects_opcoesInvalidas1_1(objects); break;
            case 15: setObjects_opcoesInvalidas1_2(objects); break;
            case 16: setObjects_opcoesInvalidas2(objects); break;
            case 17: setObjects_opcoesInvalidas2_1(objects); break;
            case 18: setObjects_opcoesInvalidas2_2(objects); break;
            case 19: setObjects_opcoesInvalidas3(objects); break;
            case 20: setObjects_opcoesInvalidas3_1(objects); break;
            case 21: setObjects_opcoesInvalidas3_2(objects); break;
            case 22: setObjects_opcoesInvalidas3_3(objects); break;
            case 23: setObjects_opcoesInvalidas3_4(objects); break;
            case 24: setObjects_opcoesInvalidas3_5(objects); break;
            case 25: setObjects_opcoesInvalidas4(objects); break;
            case 26: setObjects_opcoesInvalidas4_1(objects); break;
            case 27: setObjects_opcoesInvalidas4_2(objects); break;
            case 28: setObjects_opcoesInvalidas5(objects); break;
            case 29: setObjects_opcoesInvalidas5_1(objects); break;
            case 30: setObjects_opcoesInvalidas5_2(objects); break;
        }
    }

    /*
     * The variables declared in the rules.
     */
    private agentes.PrincipioFundamentalContagem agentes_PrincipioFundamentalContagem_1;

    /**
     * Class constructor.
     *
     * @param knowledgeBase the knowledge base that contains this rule base.
     */
    public Jeops_RuleBase_PrincipioFundamentalContagemRegras(jeops.AbstractKnowledgeBase knowledgeBase) {
        super(knowledgeBase);
    }

}
/**
 * Knowledge base created by JEOPS from file PrincipioFundamentalContagemRegras.rules
 *
 * @version Dec 1, 2013
 */
public class PrincipioFundamentalContagemRegras extends jeops.AbstractKnowledgeBase {

    /**
     * Creates a new knowledge base with the specified conflict set with the
     * desired conflict resolution policy.
     *
     * @param conflictSet a conflict set with the desired resolution policy
     */
    public PrincipioFundamentalContagemRegras(jeops.conflict.ConflictSet conflictSet) {
        super(conflictSet);
    }

    /**
     * Creates a new knowledge base, using the default conflict resolution
     * policy.
     */
    public PrincipioFundamentalContagemRegras() {
        this(new jeops.conflict.DefaultConflictSet());
    }

    /**
     * Factory method used to instantiate the rule base.
     */
    protected jeops.AbstractRuleBase createRuleBase() {
        return new Jeops_RuleBase_PrincipioFundamentalContagemRegras(this);
    }

}
